//
//  LTSendMessageHelper.h
//  LTIM
//
//  Created by 俊松何 on 2017/4/15.
//  Copyright © 2017年 俊松何. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CGITask.h"
#import "LTUser.h"
#import "LTMessage.h"
#import "LTSendMessageModel.h"

@interface LTSendMessageHelper : NSObject
+(instancetype)helper;


@property(nonatomic,  copy) NSString *hostIp;


/**
 客户端向服务端发送注册消息（表示客户端在线）
 */
-(void)sendRegisterMessage;


/**
 发送接收到消息的服务器回调(客户端告诉服务器客户端已经收到消息了)

 @param messageId 消息ID
 */
-(void)messageCallBackMessageID:(NSString *)messageId
                       chattype:(LTChatType)type
             originTargetUserId:(NSString *)originTargetUserId;



/**
 发送普通消息

 @param message           消息
 @param completionBlock   消息发送完成的block
 */
-(void)sendMessage:(LTMessage *)message
        completion:(void(^)(LTMessage *message,LTError *error))completionBlock;



/**
 发送透传消息

 @param message 消息
 @param completionBlock 消息发送完成的block
 */
-(void)sendCmdMessage:(LTMessage *)message
           completion:(void(^)(LTMessage *message,LTError *error))completionBlock;
/**
 发送加好友申请消息

 @param user            ltuser
 @param message         申请语
 @param CompletionBlock 发送完成的回调
 */
-(void)sendAddFriendMessage:(LTUser *)user
                    message:(NSString *)message
                 completion:(void(^)(LTUser *ltuser, LTError *ltrror))CompletionBlock;


/**
 发送删除好友的申请消息

 @param user    ltuser
 @param CompletionBlock 发送完成的回调
 */
-(void)sendDeletFriendMessage:(LTUser *)user
                   completion:(void(^)(LTUser *ltuser, LTError *ltrror))CompletionBlock;


/**
 同意朋友加好友申请消息

 @param user             ltuser
 @param CompletionBlock  发送完成的回调
 */
-(void)sendAgreeFriendMessage:(LTUser *)user
                    applyBody:(LTMessageApplyBody *)body
                   completion:(void(^)(LTUser *ltuser, LTError *ltrror))CompletionBlock;

/**
 拒绝加好友申请消息

 @param user             ltuser
 @param CompletionBlock  发送完成的回调
 */
-(void)sendrefuseFriendMessage:(LTUser *)user
                     applyBody:(LTMessageApplyBody *)body
                   completion:(void(^)(LTUser *ltuser, LTError *ltrror))CompletionBlock;







@end
